#include "cJSON/cJSON.h"
#include "log/log.h"
#include <stdlib.h>

/*
1.nngn生成一个json字符串
2.将json字符串解析成cJSON
*/
int main(int argc, char const *argv[])
{
    // 1.生成一个json字符串
    cJSON *root = cJSON_CreateObject();
    cJSON_AddStringToObject(root, "name", "tom"); //{"name":"tom"}
    cJSON_AddNumberToObject(root, "age", 18);     //{"name":"tom","age":18}
    char *json = cJSON_PrintUnformatted(root);    //{"name":"tom","age":18}
    log_debug("生成json字符串: %s", json);

    // 2.将json字符串解析成cJSON
    cJSON *root2 = cJSON_Parse(json);
    if (root2 == NULL)
    {
        log_error("解析json字符串失败");
        return -1;
    }
    cJSON *nameObj = cJSON_GetObjectItem(root2, "name");
    cJSON *ageObj = cJSON_GetObjectItem(root2, "age");
    if (nameObj == NULL || ageObj == NULL)
    {
        log_error("获取name或age失败");
        return -1;
    }
    char *name = nameObj->valuestring;
    int age = ageObj->valueint;
    log_debug("解析json字符串成功, name: %s, age: %d", name, age);

    // 删除cjson对象
    cJSON_Delete(root);
    cJSON_Delete(root2);
    // 释放生成的json字符串
    free(json);

    return 0;
}
